package org.ainlolcat.ainscience.utils.executor;

import org.ainlolcat.Variable;

/**
 * @author ain
 *         Date: 28.12.12
 */
public class VariableUtils {

    public static Variable mult(Variable a, Variable b){
        return new Variable(a.getDoubleValue() * b.getDoubleValue());
    }

    public static Variable div(Variable a, Variable b){
        return new Variable(a.getDoubleValue() / b.getDoubleValue());
    }

    public static Variable add(Variable a, Variable b){
        return new Variable(a.getDoubleValue() + b.getDoubleValue());
    }

    public static Variable sub(Variable a, Variable b){
        return new Variable(a.getDoubleValue() - b.getDoubleValue());
    }


    public static Variable eq(Variable a, Variable b){
        return new Variable(a.getValue().equals(b.getValue()));
    }

    public static Variable and(Variable a, Variable b){
        return new Variable(a.getBooleanValue() && b.getBooleanValue());
    }

    public static Variable gt(Variable a, Variable b){
        return new Variable(a.getDoubleValue() > b.getDoubleValue());
    }

    public static Variable ls(Variable a, Variable b){
        return new Variable(a.getDoubleValue() < b.getDoubleValue());
    }

    public static Variable or(Variable a, Variable b){
        return new Variable(a.getBooleanValue() || b.getBooleanValue());
    }
}
